﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using DAplicaciones1;
using System.Collections;

namespace persistencia
{
    class BrLibro:BrItem
    {

        public override void agregar(Object o)
        {
            try
            {
                Libro libro = (Libro)o;
                string sentencia;
                base.agregar(o);
                sentencia = "Insert into Libro values ('" + libro.OID + "','" + libro.Isbn + "','" + libro.Autor + "')";
                Conexion.ejecutarse(sentencia);
            }
            catch (Exception e1)
            {
                throw new System.ArgumentException("No se pudo insertar el libro en la Base de datos");
            }
        }
        public override void modificar(Object o)
        {

        }

        public override void eliminar(Object o)
        {
           
        }

        public override void traerDatos(Object o)
        {


        }


        public override ArrayList traerLista(Object o)
        {

            ArrayList al = new ArrayList();
            Libro libro = (Libro)o;
            string sentencia = "select * from ((libro l inner join item i on i.itemOID=l.itemOID)inner Join ContenidoRelacionado cr on cr.itemOID=l.itemOID) inner join accesoOnline ao on ao.itemOID=l.itemOID";
            Conexion.traerDatos(sentencia);
            while (Conexion.DataR.Read())
            {
                libro = new Libro();
                libro.OID = Conexion.obtenerValor("i.itemOID").ToString();
                libro.Nombre = Conexion.obtenerValor("Nombre").ToString();
                libro.Costo = Double.Parse (Conexion.obtenerValor("Costo").ToString());
                libro.Precio = Double.Parse (Conexion.obtenerValor("i.Precio").ToString());
                libro.Isbn = Conexion.obtenerValor("Isbn").ToString();
                libro.Autor = Conexion.obtenerValor("Autor").ToString();
                ContenidoRelacionado cr = new ContenidoRelacionado();
                cr.OID = Conexion.obtenerValor("i.itemOID").ToString();
                cr.Precio = Double.Parse(Conexion.obtenerValor("cr.Precio").ToString());
                libro.Agregados.Add(cr);
                AccesoOnline ao = new AccesoOnline();
                ao.OID = Conexion.obtenerValor("i.itemOID").ToString();
                ao.Precio = Double.Parse(Conexion.obtenerValor("ao.Precio").ToString());
                libro.Agregados.Add(ao);
                TiempoEntrega t = new TiempoEntrega();
                libro.Agregados.Add(t);
                al.Add(libro);
            }

            Conexion.finConsulta();

            return al;
        }

    }
}
